//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// 本函数用来计算n×n的邻接矩阵a中，第m个顶点的入度
// 顶点Vm的入度 = 邻接矩阵中第m列中权不等于0的弧总数
int outDegree(vector<vector<int> > a, int m)
{
    int ans = 0;
    for(int i=1; i<a.size(); i++)
    {
        if(a[m][i] != 0)
            ans++;
    }
    return ans;
}

// 本函数用来计算n×n的邻接矩阵a中，第m个顶点的出度
// 顶点Vm的出度 = 邻接矩阵中第m行中权不等于0的弧总数
int inDegree(vector<vector<int> > a, int m)
{
    int ans = 0;
    for(int i=1; i<a.size(); i++)
    {
        if(a[i][m] != 0)
            ans++;
    }
    return ans;
}

// 本函数用来计算n×n的邻接矩阵a中，弧的总数
// 有向图的弧总数 = 邻接矩阵中所有权不等于0的弧总数
int edge(vector<vector<int> > a)
{
    int ans = 0;
    for(int i=1; i<a.size(); i++)
    {
        for(int j=0; j<a.size(); j++)
        {
            if(a[i][j] != 0)
                ans++;
        }
    }
    return ans;
}

int main()
{
    int n;       // 图的节点个数
    int m;       // 第m个节点
    cin >> n >> m;

    // 图的n阶邻接矩阵
    vector<vector<int> > a;
    a.resize(n+1);

    // 输入n阶邻接矩阵
    for(int i=1; i<=n; i++)
    {
        a[i].resize(n+1);

        for(int j=1; j<=n; j++)
        {
            cin >> a[i][j];
        }
    }

    // 计算某指定顶点的出度、入度
    cout << m << " ";
    cout << outDegree(a, m) << " ";
    cout << inDegree(a, m) << endl;

    // 计算图的边数
    cout << edge(a) << endl;

    return 0;
}
